#ifndef __DISTANCEFILTER_H__
#define __DISTANCEFILTER_H__

#include "filter.h"
#include "level.h"
#include <iostream>
#include <queue>

namespace AI_SOKOBAN
{
struct triplet{
	int x;
	int y;
	int dist;
};
	
	
class Distancefilter : public Filter
  {
  public:
	 Distancefilter(const Level& level);
	 int minNrOfMoves(const Level& level);
     virtual double evalLevel(const Level& level, const Move& move);
  private:
	  void calcGoalDistanceMatrix(const Level& level, int * distMatrix);
	  int* distMatrix;
  };
}

#endif